Technique for selecting a path computation element based on response time delay

ABSTRACT

A technique efficiently selects a path computation element (PCE) to compute a path between nodes of a computer network. The PCE selection technique is illustratively based on dynamic advertisements of the PCE&#39;s available path computation resources, namely a predictive response time (PRT). To that end, the novel technique enables one or more PCEs to dynamically send (advertise) their available path computation resources to one or more path computation clients (PCCs). In addition, the technique enables the PCC to efficiently select a PCE (or set of PCEs) to service a path computation request based upon those available resources.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/130,058, entitled “TECHNIQUE FOR SELECTING A PATH COMPUTATION ELEMENTBASED ON RESPONSE TIME DELAY,” filed on May 16, 2005, which claims thebenefit of U.S. Provisional Application Ser. No. 60/658,003, entitled“TECHNIQUE FOR SELECTING A PATH COMPUTATION ELEMENT BASED ON RESPONSETIME DELAY,” filed on Mar. 2, 2005, the contents of which are herebyincorporated in their entirety.

This application is also related to U.S. patent application Ser. No.10/983,280, entitled “TECHNIQUE FOR SELECTING A PATH COMPUTATIONELEMENT,” filed on Nov. 5, 2004, the contents of which are herebyincorporated in its entirety.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to computer networks and more particularlyto selecting path computation elements for computing paths through acomputer network.

Background Information

A computer network is a geographically distributed collection of nodesinterconnected by communication links and segments for transporting databetween end nodes, such as personal computers and workstations. Manytypes of networks are available, with the types ranging from local areanetworks (LANs) to wide area networks (WANs). LANs typically connect thenodes over dedicated private communications links located in the samegeneral physical location, such as a building or campus. WANs, on theother hand, typically connect geographically dispersed nodes overlong-distance communications links, such as common carrier telephonelines, optical lightpaths, synchronous optical networks (SONET), orsynchronous digital hierarchy (SDH) links. The Internet is an example ofa WAN that connects disparate networks throughout the world, providingglobal communication between nodes on various networks. The nodestypically communicate over the network by exchanging discrete frames orpackets of data according to predefined protocols, such as theTransmission Control Protocol/Internet Protocol (TCP/IP). In thiscontext, a protocol consists of a set of rules defining how the nodesinteract with each other.

Computer networks may be further interconnected by an intermediate node,such as a router, to extend the effective “size” of each network. Sincemanagement of a large system of interconnected computer networks canprove burdensome, smaller groups of computer networks may be maintainedas routing domains or autonomous systems. The networks within anautonomous system (AS) are typically coupled together by conventional“intradomain” routers configured to execute intradomain routingprotocols, and are generally subject to a common authority. To improverouting scalability, a service provider (e.g., an ISP) may divide an ASinto multiple “areas.” It may be desirable, however, to increase thenumber of nodes capable of exchanging data; in this case, interdomainrouters executing interdomain routing protocols are used to interconnectnodes of the various ASes. It may also be desirable to interconnectvarious ASes that are operated under different administrative domains.As used herein, a router that connects different areas or ASes togetheris generally referred to as a border router. In the case of areas ratherthan ASes since the routers are under a common authority, a singlerouter may in fact serve as an exit border router of one area and anentry border router of another area.

An example of an interdomain routing protocol is the Border GatewayProtocol version 4 (BGP), which performs routing between ASes byexchanging routing and reachability information among neighboringinterdomain routers of the systems. An adjacency is a relationshipformed between selected neighboring (peer) routers for the purpose ofexchanging routing information messages and abstracting the networktopology. BGP generally operates over a reliable transport protocol,such as the Transmission Control Protocol (TCP), to establish a TCPconnection/session. The BGP protocol is well known and generallydescribed in Request for Comments (RFC) 1771, entitled A Border GatewayProtocol 4 (BGP-4), published March 1995, which is hereby incorporatedby reference.

Examples of an intradomain routing protocol, or an interior gatewayprotocol (IGP), are the Open Shortest Path First (OSPF) routing protocoland the Intermediate-System-to-Intermediate-System (ISIS) routingprotocol. The OSPF and ISIS protocols are based on link-state technologyand, therefore, are commonly referred to as link-state routingprotocols. Link-state protocols define the manner with which routinginformation and network-topology information are exchanged and processedin an AS or area. This information is generally directed to anintradomain router's local state (e.g., the router's usable interfacesand reachable neighbors or adjacencies). In the case of ISIS, the localstate is exchanged using link-state packets, whereas in the case ofOSPF, the information is exchanged using link state advertisements(LSAs). The term “LSA” is used herein to generally reference both typesof information exchange. The OSPF protocol is described in RFC 2328,entitled OSPF Version 2, dated April 1998 and the ISIS protocol isdescribed in RFC 1195, entitled Use of OSI ISIS for routing in TCP/IPand Dual Environments, dated December 1990, both of which are herebyincorporated by reference.

Multi-Protocol Label Switching (MPLS) Traffic Engineering has beendeveloped to meet data networking requirements such as guaranteedavailable bandwidth or fast restoration. MPLS Traffic Engineeringexploits modern label switching techniques to build guaranteed bandwidthend-to-end tunnels through an IP/MPLS network of label switched routers(LSRs). These tunnels are a type of label switched path (LSP) and thusare generally referred to as MPLS Traffic Engineering (TE) LSPs.Examples of MPLS TE can be found in RFC 3209, entitled RSVP-TE:Extensions to RSVP for LSP Tunnels, dated December 2001, RFC 3784entitled Intermediate-System-to-Intermediate-System (IS-IS) Extensionsfor Traffic Engineering (TE), dated June 2004, and RFC 3630, entitledTraffic Engineering (TE) Extensions to OSPF Version 2, dated September2003, the contents of all of which are hereby incorporated by referencein their entirety.

Establishment of an MPLS TE LSP from a head-end LSR to a tail-end LSRinvolves computation of a path through a network of LSRs. Optimally, thecomputed path is the “shortest” path, as measured in some metric, thatsatisfies all relevant LSP Traffic Engineering constraints such as e.g.,required bandwidth, availability of backup bypass tunnels for each linkand node included in the path, etc. Path computation can either beperformed by the head-end LSR or by some other entity operating as apath computation element (PCE). The head-end LSR (or a PCE) exploits itsknowledge of network topology and resources available on each link toperform the path computation according to the LSP Traffic Engineeringconstraints. Various path computation methodologies are availableincluding CSPF (constrained shortest path first). MPLS TE LSPs can beconfigured within a single IGP area or may also span multiple IGP areasor ASes.

Some applications may incorporate unidirectional data flows configuredto transfer time-sensitive traffic from a source (sender) in a computernetwork to a destination (receiver) in the network in accordance with acertain “quality of service” (QoS). Here, network resources may bereserved for the unidirectional flow to ensure that the QoS associatedwith the data flow is maintained. The Resource reSerVation Protocol(RSVP) is a network-control protocol that enables applications toreserve resources in order to obtain special QoS for their data flows.RSVP works in conjunction with routing protocols to, e.g., reserveresources for a data flow in a computer network in order to establish alevel of QoS required by the data flow. RSVP is defined in R. Braden, etal., Resource ReSerVation Protocol (RSVP), RFC 2205. In the case oftraffic engineering applications, RSVP signaling is used to establish aTE-LSP and to convey various TE-LSP attributes to routers, such asborder routers, along the TE-LSP obeying the set of required constraintswhose path may have been computed by various means.

The PCE is an entity having the capability to compute paths between anynodes of which the PCE is aware in an AS or area. PCEs are especiallyuseful in that they are more cognizant of network traffic and pathselection within their AS or area, and thus may be used for more optimalpath computation. A head-end LSR may further operate as a pathcomputation client (PCC) configured to send a path computation requestto the PCE, and receive a response with the computed path, potentiallytaking into consideration other requests from other PCCs. It isimportant to note that when one PCE sends a request to another PCE, itacts as a PCC. PCEs conventionally have limited or no visibility outsideof its surrounding area or AS. A PCC can be informed of a PCE either bypreconfiguration by an administrator, or by a PCE Discovery (PCED)message (“advertisement”), which is sent from the PCE within its area oracross the entire AS to advertise its services.

One difficulty that arises in crossing AS boundaries is that pathcomputation at the head-end LSR requires knowledge of network topologyand resources across the entire network between the head-end and thetail-end LSRs. Yet service providers typically do not share thisinformation with each other across AS borders. Neither the head-end LSRnor any single PCE will have sufficient knowledge to compute a path.Because of this, MPLS Traffic Engineering path computation techniquesare required to compute inter-domain TE LSPs. A similar problem arisesin computing the paths of MPLS Traffic Engineering LSPs across areas.Network topology and resource information do not generally flow acrossarea boundaries even though a single service provider may operate allthe areas.

The use of PCEs has been adapted to create a distributed PCEarchitecture, in order to extend MPLS TE LSPs across AS or areaboundaries. An example of such a distributed architecture is describedin commonly-owned copending U.S. patent application Ser. No. 10/767,574,entitled COMPUTING INTER-AUTONOMOUS SYSTEM MPLS TRAFFIC ENGINEERING LSPPATHS, filed by Vasseur et al., on Sep. 18, 2003, the contents of whichare hereby incorporated by reference in its entirety. In a distributedPCE architecture, the visibility needed to compute paths is extendedbetween adjacent areas and ASes so that PCEs may cooperate to computepaths across multiple areas or ASes by exchanging virtual shortest pathtrees (VSPTs) while preserving confidentiality across ASes. VSPTs, whichmay be represented as virtual links made of “loose hops,” are usedbecause service providers may desire to maintain their internal networkarchitectures and designs confidential. One way to compute the VSPTs isby using a virtual shortest path tree (VSPT) algorithm. Generally, aVSPT is a compressed path description (entry and exit/destination pointsof areas/ASes) that informs a previous PCE that a destination can bereached from a particular entry to a particular exit in such a way thatthe internal path specifics are kept confidential from an adjacent areaor AS. The virtual links that compose the VSPT will generally have anassociated network cost for each calculated link. It should be notedthat in the context of multiple ASes operating under a common authority(e.g. a unique service provider), such virtual links may also specify anentire path. A set of virtual links may be further organized (in certainprotocols) within an explicit route object (ERO) to facilitate transferof the compressed path descriptions to the previous PCE.

In some areas or ASes, it may be desirable to use multiple PCEs withinthe same adjacent area or AS to alleviate the load on any one PCE inparticular and to avoid any single point of failure. In this case, a PCCmay receive notification through multiple PCED advertisements that morethan one PCE exists. Consequently, a PCC requesting the computation of apath, e.g., an MPLS inter-domain Traffic Engineering LSP, by means ofthe VSPT algorithm, for example, must first determine to which PCE itcan send its path computation request. In addition to informing PCCsthat it can act as a PCE for either inter-area and/or inter-AS TrafficEngineering path computation, a PCE can also inform the PCCs of its pathcomputation capabilities, generally through the use of Type/Length/Value(TLV) encoding formats. Examples of TLV encoding formats used to specifyMPLS Traffic Engineering capabilities are described in OSPF MPLS TrafficEngineering Capabilities (draft-vasseur-ospf-te-caps.txt) published July2004, and IS-IS MPLS Traffic Engineering Capabilities(draft-vasseur-isis-te-caps.txt) published July 2004, both by Vasseur etal., both of which are expressly incorporated by reference in theirentirety. These computation capabilities include, but are not limitedto, the ability to compute local paths, inter-area paths, multi-domainpaths, etc.

When there are multiple PCE “candidates,” however, a PCC does not havesufficient information to adequately select a PCE based on its actualavailable path computation resources. This may lead to highlysub-optimal choices since a path computation request may be directed toan overloaded PCE which would result in increasing the path computationtime (and consequently the path set up time). This is particularly truein environments where a large amount of requests are sent so as toreroute or re-optimize many paths, for instance, after a network elementfailure or restoration. There is a need, therefore, for an efficienttechnique to load balance interaction between PCEs and PCCs. There isalso a need for a system and method to advertise a PCE's available pathcomputation resources, and for a system and method for a PCC toadditionally select the optimal PCE based upon those resources.

SUMMARY OF THE INVENTION

The present invention is directed to a technique for efficientlyselecting a path computation element (PCE) to compute a path betweennodes of a computer network. The PCE selection technique isillustratively based on dynamic advertisements of the PCE's availablepath computation resources, namely a predictive response time (PRT). Tothat end, the novel technique enables one or more PCEs to dynamicallysend (advertise) their available path computation resources to one ormore path computation clients (PCCs). In addition, the technique enablesthe PCC to efficiently select a PCE (or set of PCEs) to service a pathcomputation request based upon those available resources.

In accordance with one aspect of the present invention, a PCEcontinuously calculates a PRT as requests are received and may sendnotifications of the PRT to one or more PCCs. A PRT maximum (PRT_max)threshold value may be locally configured at the PCE, such that in theevent the PRT exceeds PRT_max, the PCE notifies one or more PCCs of thecongested state. Also, while in a congested state, once a configurablelower threshold value (PRT_min) is reached, the PCE may send anotification to clear the congested state.

In the illustrative embodiment described herein, the notifications aretransmitted using Interior Gateway Protocol (IGP) messages. Thecongested PCE may create an IGP message that is used to propagate(“advertise”) its congested state to PCCs in its domain, e.g., its IGParea/level. The IGP message may also indicate other information aboutthe congested state, such as the current PRT and/or PRT_max of the PCE.The IGP message is illustratively embodied as an Open Shortest PathFirst (OSPF) or Intermediate-System-to-Intermediate-System (IS-IS)advertisement message (“IGP Advertisement”), respectively. Notably, theIGP Advertisement includes a type/length/value (TLV) encoded format usedto convey the congestion information.

In accordance with another aspect of the present invention, a PCC sendsa path computation request to a preferred PCE, which may explicitlysignal a maximum response time (MRT) for the request, or which may be ofa type associated with a predefined MRT. Upon receiving the request, thepreferred PCE calculates a PRT for that request, and in the event thePRT is greater than the MRT, the PCE may send a response to the PCCindicating the inability to comply with the MRT.

In the illustrative embodiment described herein, a request/responsesignaling exchange for use between PCEs and PCCs is embodied asextensions to Resource reSerVation Protocol (RSVP) TE signalingmessages. Notably, the RSVP extensions are, in turn, embodied as newRSVP objects, flags, and/or TLV encoded formats contained within theRSVP objects. Specifically, new RSVP extensions may be used tocommunicate desired information about the requests/response, such as thecurrent PRT of the PCE or the MRT of the particular request.

In accordance with still another aspect of the present invention, uponreceiving from a preferred PCE either a notification indicatingcongestion or a response to a request indicating an inability to complywith an MRT, a PCC may advantageously redirect its requests to anavailable alternate PCE (e.g., a non-congested PCE). In the event noalternate PCEs are available, e.g., with no or less congestion, the PCCutilizes either the current preferred PCE, or an alternate PCE with theleast congestion.

Advantageously, the novel technique efficiently selects an appropriatePCE to compute a path, such as a Traffic Engineering (TE) label switchedpath (LSP), between nodes of a network to thereby reduce a set-up timefor the TE-LSP and allows for faster convergence. TE-LSP set-up timesare generally critical to TE sensitive applications and, thus, reductionof those times is desirable. By selecting an appropriate PCE, or, in thecase of multiple PCEs, efficiently load balancing a set of requestsamong the PCEs, PCE overload is obviated, thus reducing the TE-LSPset-up time for a computed path.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and further advantages of the invention may be betterunderstood by referring to the following description in conjunction withthe accompanying drawings in which like reference numerals indicateidentical or functionally similar elements, of which:

FIG. 1A is a schematic block diagram of an exemplary computer network ofautonomous systems that may be used in accordance with the presentinvention;

FIG. 1B is a schematic block diagram of an exemplary computer network ofareas that may be used in accordance with the present invention;

FIG. 2 is schematic block diagram of an exemplary router that may beadvantageously used with the present invention;

FIG. 3 is a schematic block diagram illustrating an encoding format thatmay be advantageously used with the present invention;

FIG. 4 is a schematic block diagram of portions of a Path ComputationRequest message that may be advantageously used with the presentinvention;

FIG. 5 is a schematic block diagram of portions of a Path ComputationReply message that may be advantageously used with the presentinvention;

FIG. 6 is a schematic block diagram illustrating an Extension Objectencoded using a TLV that may be advantageously used with the presentinvention;

FIG. 7 is a flowchart illustrating a sequence of steps for identifying acongested PCE state in accordance with the present invention;

FIG. 8 is a flowchart illustrating a sequence of steps for responding topath computation requests in accordance with the present invention; and

FIG. 9 is a flowchart illustrating a sequence of steps for selecting anappropriate PCE in accordance with the present invention.

DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT

FIG. 1A is a schematic block diagram of an exemplary computer network100 a comprising autonomous system AS2, which is interconnected with aplurality of other autonomous systems AS1, AS3, and AS4. An AutonomousSystem (AS) is herein defined to be a group of intermediate nodes, suchas intradomain routers, within a network that are subject to a commonauthority and execute one or more intradomain routing protocols.Although, each AS is illustratively an autonomous system, those skilledin the art will appreciate that the ASes may alternatively be configuredas routing domains or other networks or subnetworks. The autonomoussystem AS1 includes intradomain routers such as border routers ASBR1*and ASBR2* through which communication, such as data packets, may passinto and out of the autonomous system to border routers ASBR3 and ASBR4,respectively of AS2. AS2 also includes border routers ASBR5* and ASBR6*in communication with border routers ASBR7* and ASBR8* of ASes 3 and 4,respectively. Moreover, within AS1, AS2, AS3, and AS4, there areexemplary intradomain routers A, B, C, and D, respectively. Thoseskilled in the art will understand that any number of routers may beused in the ASes, and that the view shown herein is for simplicity.

Data packets may be exchanged among the autonomous systems AS1-AS4 usingpredefined network communication protocols such as the TransmissionControl Protocol/Internet Protocol (TCP/IP), User Datagram Protocol(UDP), Asynchronous Transfer Mode (ATM) protocol, Frame Relay protocol,Internet Packet Exchange (IPX) protocol, etc. Routing information may bedistributed among the routers within an AS using predetermined“interior” gateway protocols (IGPs), such as conventionaldistance-vector protocols or, illustratively, link-state protocols,through the use of link-state advertisements (LSAs) or link-statepackets. In addition, data packets containing network routinginformation may be exchanged among the autonomous systems AS1-AS4 using“external” gateway protocols, such as the Border Gateway Protocol (BGP).

FIG. 1B is a schematic block diagram of an exemplary computer network100 b comprising areas A1, A2, and A3, each having at least oneintradomain router, A, B, and C, respectively. In addition, A1 and A2share border routers ABR1* and ABR2*, while A2 and A3 share ABR3* andABR4. As used herein, an area is a collection of routers that share fullnetwork topology information with each other but not necessarily withrouters outside the area. The term area as used herein also encompassesthe term “level” which has a similar meaning for networks that employIS-IS as their IGP. These examples are merely representative.Furthermore, the techniques described below with reference to inter-ASpath computation may be used in the context of inter-area pathcomputation and, under certain conditions, the techniques described withreference to inter-area path computation may be used for inter-AS pathcomputation. It will be understood by those skilled in the art thatwherever autonomous systems are referred to, areas may be used also.

FIG. 2 is a schematic block diagram of an exemplary router 200 that maybe advantageously used with the present invention as an intradomainrouter or a border router. The router comprises a plurality of networkinterfaces 210, a processor 220, and a memory 240 interconnected by asystem bus 250. The network interfaces 210 contain the mechanical,electrical and signaling circuitry for communicating data over physicallinks coupled to the network 100 a,b. The network interfaces may beconfigured to transmit and/or receive data using a variety of differentcommunication protocols, including, inter alia, TCP/IP, UDP, ATM,synchronous optical networks (SONET), wireless protocols, Frame Relay,Ethernet, Fiber Distributed Data Interface (FDDI), etc.

The memory 240 comprises a plurality of storage locations that areaddressable by the processor 220 and the network interfaces 210. Theprocessor 220 may comprise necessary elements or logic adapted toexecute the software programs and manipulate the data structures. Arouter operating system 242, portions of which is typically resident inmemory 240 and executed by the processor, functionally organizes therouter by, inter alia, invoking network operations in support ofsoftware processes and/or services executing on the router. Thesesoftware processes and/or services include routing services 247, TrafficEngineering (TE) services 244, PCE/PCC process 245, and RSVP services249. It will be apparent to those skilled in the art that otherprocessor and memory means, including various computer-readable media,may be used to store and execute program instructions pertaining to theinventive technique described herein.

Routing services 247 contain computer executable instructions executedby processor 220 to perform functions provided by one or more routingprotocols, such as IGP and BGP. These functions may be configured tomanage a forwarding information database (not shown) containing, e.g.,data used to make forwarding decisions. TE services 244 contain computerexecutable instructions for operating TE functions in accordance withthe present invention. Examples of Traffic Engineering are described inRFC 3209, RFC 3784, and RFC 3630 as incorporated above, and in RFC 3473,entitled, Generalized Multi-Protocol Label Switching (GMPLS) SignalingResource ReSerVation Protocol-Traffic Engineering (RSVP-TE) Extensionsdated January 2003, which is hereby incorporated by reference in itsentirety. RSVP services 249 contain computer executable instructions forimplementing RSVP and processing RSVP messages in accordance with thepresent invention. RSVP is described in Request for Comments (RFC) 2205,entitled Resource ReSerVation Protocol (RSVP), and in RFC 3209, entitledRSVP-TE: Extensions to RSVP for LSP Tunnels, both as incorporated above.

Changes in the network topology may be communicated among routers 200using a link-state protocol, such as the conventional OSPF and IS-ISprotocols. Suppose, for example, that a communication link fails or acost value associated with a network node changes. Once the change inthe network's state is detected by one of the routers, that router mayflood an IGP Advertisement communicating the change to the other routersin the network. In this manner, each of the routers eventually“converges” to an identical view of the network topology.

FIG. 3 illustrates an exemplary IGP Advertisement 300 that may beflooded by the routers 200. The packet includes an advertising-nodefield 302, a sequence-number field 304, an age field 306, a data section320, and other routing information 312. The advertising-node field 302stores a value that identifies the router that generated and originallybroadcast the IGP Advertisement 300. The sequence-number field 304stores a sequence number indicating the relative version of the IGPAdvertisement. Typically, the sequence number stored in the field 304 isincremented, e.g., by one, for every new version of the IGPAdvertisement. The IGP Advertisement 300 is therefore considered “stale”(invalid) if its sequence number is less than the sequence number storedin a previously-received version of the IGP Advertisement, i.e.,generated by the same advertising node. Accordingly, the routers 200 maybe configured to store and forward only the most recent version of anIGP Advertisement, e.g., the version having the largest sequence number.

The age field 306 also stores a value that may be used for determiningwhether the IGP Advertisement 300 is valid. The age value is typicallyinitialized to a non-zero integer value, often in units of seconds. Theage value may be decremented, e.g., by one every second, until the agevalue reaches zero, thereby indicating that the IGP Advertisement hasbecome invalid. That is, every router 200 that stores or floods the IGPAdvertisement 300 continuously ages the packet until the age valueequals zero. Those skilled in the art will appreciate that other agingmechanisms alternatively may be used, such as incrementing the IGPAdvertisement age value from an initial value, e.g., equal to zero,until the age value reaches a known upper limit.

The data section 320 may include one or more pairs of neighboring-nodefields 308 and cost fields 310. Each neighboring-node field 308 stores avalue, such as an address, indicating a network node that is directlyaccessible from the intermediate node stored in the advertising-nodefield 302. The field 310 stores a cost value that has been associated,e.g., by the advertising node, with the network node identified in theneighboring-node field 308. As shown, each neighboring-node field 308 isassociated with only one corresponding cost field 310. However, it isnoted that in other embodiments, a single neighboring node may beassociated with a plurality of cost values. Other routing information312 may also be included in the IGP Advertisement 300, such as checksumvalues, packet-length information, flag values, type-of-service metrics,etc., and/or an Extension Object 600 a (described further below).Generally, the received IGP Advertisements are stored in a Link-StateDatabase (LSDB) of the router 200 (not shown), or in some cases in a TEDatabase of the router 200 (not shown).

In one embodiment, the routers described herein are IP routers thatimplement Multi-Protocol Label Switching (MPLS) and operate as labelswitched routers (LSRs). In one simple MPLS scenario, at an ingress to anetwork, a label is assigned to each incoming packet based on itsforwarding equivalence class before forwarding the packet to a next-hoprouter. At each router, a forwarding selection and a new substitutelabel are determined by using the label found in the incoming packet asa reference to a label forwarding table that includes this information.At the network egress (or one hop prior), a forwarding decision is madebased on the incoming label but optionally no label is included when thepacket is sent on to the next hop.

The paths taken by packets that traverse the network in this manner arereferred to as label switched paths (LSPs). Establishment of a TE-LSPrequires computation of a path, signaling along the path, andmodification of forwarding tables along the path. MPLS TE establishesLSPs that have guaranteed bandwidth under certain conditions.Illustratively, the TE-LSPs may be signaled through the use of the RSVPprotocol and, in particular, RSVP-TE signaling messages.

In accordance with RSVP-TE, to establish a data path for the TE-LSPbetween a sender (e.g., head-end node A) and a receiver (e.g., tail-endnode B), the sender may send an RSVP path (Path) message (not shown)downstream hop-by-hop along a path (e.g., a unicast route) to thereceiver to identify the sender and indicate e.g., bandwidth needed toaccommodate the data flow, along with other attributes of the TE-LSP.The Path message may contain various information about the TE-LSPincluding, e.g., various characteristics of the TE-LSP. To establish aTE-LSP (data flow) between the receiver and the sender, the receiver mayreturn an RSVP Reserve (Resv) message (not shown) upstream along thepath to the sender to confirm the attributes of the TE-LSP, and providea TELSP label. It should be noted that in accordance with RSVPsignaling, the state of the RSVP is refreshed on a timed interval, e.g.,every thirty seconds, in which RSVP Path and Resv messages areexchanged. This timed interval is configurable by a systemadministrator.

Although the illustrative embodiment described herein is directed toMPLS, it should be noted that the present invention may advantageouslyapply to Generalized MPLS (GMPLS), which pertains not only to packet andcell-based networks, but also to Time Division Multiplexed (TDM) andoptical networks. GMPLS is well known and described in RFC 3945,entitled Generalized Multi-Protocol Label Switching (GMPLS)Architecture, dated October 2004, and RFC 3946, entitled GeneralizedMulti-Protocol Label Switching (GMPLS) Extensions for SynchronousOptical Network (SONET) and Synchronous Digital Hierarchy (SDH) Control,dated October 2004, the contents of both of which are herebyincorporated by reference in their entirety.

To compute paths across multiple areas or ASes, above-referenced U.S.application Ser. No. 10/767,574 describes the use of a virtual shortestpath tree (VSPT) algorithm in a distributed path computation element(PCE) architecture, which has been incorporated by reference herein.According to the VSPT algorithm, for an inter-AS path computationexample such as in FIG. 1A, a PCC (Router A) first sends a pathcomputation request to a known local PCE in its AS, such as ASBR1*, tocompute a path to a destination (e.g., a tail-end LSR) such as Router Cin AS3. As an example, border routers marked with ‘*’ in FIGS. 1A and 1Bare PCE enabled border routers. The address of the local PCE may bemanually configured. Alternatively, the PCE may advertise itself throughflooding within the AS. Path computation element discovery (PCED)techniques can be used in accordance with OSPF MPLS Traffic EngineeringCapabilities or ISIS MPLS Traffic Engineering Capabilities by Vasseur,et al., incorporated by reference above. A PCED message may includeindications of PCE capabilities, such as the ability to compute localpaths, inter-area paths, inter-AS paths, multi-domain paths, diversepaths, etc. In the illustrative embodiment, a PCED may be containedwithin a conventional IGP advertisement 300 (e.g., an OSPF LSA),generally through the use of an extension object 600 a.

The path computation request (and response) may be made in accordancewith a protocol specified in Vasseur, et al. RSVP Path ComputationRequest and Reply Messages, Internet Draft, July 2004, which is herebyincorporated by reference as though fully set forth herein. Knowledge ofthe PCE addresses may be acquired by way of static configuration orIGP/BGP advertisements, as could be readily devised by one of skill inthe art. It should be understood that the use of RSVP serves only as anexample, and that other communication protocols (e.g., other PCE-PCCcommunication protocols) may be used in accordance with the presentinvention.

FIG. 4 is a schematic block diagram of portions of a Path ComputationRequest message 400 that may be advantageously used with the presentinvention. Illustratively, the Path Computation Request (request) isembodied as extensions to RSVP-TE signaling messages. Request 400contains, inter alia, a common header 410, a session object 420, arequest identification (request_ID) object 430, a sender template object440, and a sender traffic specification (Tspec) object 450, asunderstood by those skilled in the art. It should be noted that request400 may contain other objects including those for containing variouspath constraints (not shown) and/or a novel extension object 600 b(described further below).

FIG. 5 is a schematic block diagram of portions of a Path ComputationReply message 500 that may be advantageously used with the presentinvention. Illustratively, the Path Computation Reply (reply) is alsoembodied as extensions to RSVP-TE signaling messages. Reply 500contains, inter alia, a common header 510 and a request_ID object 520.It should be noted that reply 500 may contain other objects including anovel extension object 600 c (described further below).

There are several circumstances, such as inter-domain MPLS TrafficEngineering, where a PCC may have the choice among a set of PCEs to sendone or more path computation requests. The number of PCEs may vary buttypically it is a small number, such as, e.g., 5 or 6. Since load andcapacity information of such PCEs may not be available (or may beadvertised as static values), the PCC may arbitrarily choose a PCE, thuspotentially resulting in over-loading a PCE whereas other PCEs may bemore responsive. Moreover, events local to the PCE may occur thuslimiting the PCE path computation resources. For example, theper-request service time for a PCE may vary widely and hence the delayfor a request based on a simple count of current requests may not be anadequate indicator of load.

The present invention is directed to a technique for efficientlyselecting a PCE to compute a path between nodes of a computer network.The PCE selection technique is illustratively based on dynamicadvertisements of the PCE's available path computation resources, namelya predictive response time (PRT). To that end, the novel techniqueenables one or more PCEs to dynamically send (advertise) their availablepath computation resources to one or more PCCs. In addition, thetechnique enables the PCC to efficiently select a PCE (or set of PCEs)to service a path computation request based upon those availableresources.

In accordance with one aspect of the present invention, a PCEcontinuously calculates a PRT as requests are received and may sendnotifications of the PRT to one or more PCCs. A PRT maximum (PRT_max)threshold value may be locally configured at the PCE, such that in theevent the PRT exceeds PRT_max, the PCE notifies one or more PCCs of thecongested state. Also, while in a congested state, once a configurablelower threshold value (PRT_min) is reached, the PCE may send anotification to clear the congested state. Notably, the use of upper andlower thresholds reduces undesirable oscillation that would occur if thecongested state were cleared as soon as the PRT reaches a value lessthan PRT_max, as the PCE may receive many more requests once PCCs arenotified of the cleared state. Notably, the PCE may also periodicallysend advertisements of its PRT (e.g., its current “load”), such thatPCCs may choose a PCE with the least load prior to its becomingcongested.

Various methods to calculate/estimate the PRT will be understood bythose skilled in the art. For example, the PCE may use a Markov Chain toestimate the PRT, in which case the PRT is equal to “(1/a)/(1−b),” where“a” is the service rate of requests and “b” is equal to the arrival rateof requests divided by the service rate (a). Other known algorithms maybe used to calculate the PRT in accordance with the present invention,such as, e.g., empiric algorithms using a low-pass filter based oncomputed/observed response time. Those skilled in the art willunderstand that the present invention is not limited by how the PRT iscalculated.

In the illustrative embodiment described herein, the notifications aretransmitted using IGP messages 300. The congested PCE may create an IGPmessage 300 that is used to propagate (“advertise”) its congested stateto PCCs in its domain, e.g., its IGP area/level. The IGP message 300 mayalso indicate other information about the congested state, such as thecurrent PRT and/or PRT_max of the PCE. The IGP message is illustrativelyembodied as an Open Shortest Path First (OSPF) orIntermediate-System-to-Intermediate-System (IS-IS) advertisement message(“IGP Advertisement”), respectively. Notably, the IGP Advertisementincludes a type/length/value (TLV) encoded format used to convey thecongestion information, such as extension object 600 a.

FIG. 6 is a schematic block diagram illustrating an Extension Object 600a encoded using a TLV that may be advantageously used with the presentinvention. The TLV encoding format is a general way to communicateinformation between nodes, such as routers. The TLV “attribute” 600 isused to identify a type (T) of information being communicated(conveyed), a length (L) of information to be conveyed and a value (V)of the actual information conveyed. The length (L) parameter containedin the length field 610 is typically implementation-specific and candenote the length from the beginning of the Type field 605 of theattribute 600 to the end. However, the length generally denotes thelength of the Value (V) field 615 and not the Type (T) or Length (L)fields. The TLV encoded format may also comprise one or more non-orderedsub-TLVs 650 carried within the TLV “payload” (e.g. Value field 615),each having a Type field 655, Length field 660, and Value field 665.Illustratively, the Extension Object 600 a is embodied as a new TLV orsub-TLV type carried, e.g., within an IS-IS Router Capability TLV, whichis further described in Vasseur, et al., IS-IS Extensions forAdvertising Router Information <draft-ietf-isis-caps-01.txt>, InternetDraft, April 2005, or within an OSPF Router Information IGP message,which is further described in Lindem, et al., Extensions to OSPF forAdvertising Optional Router Capabilities <draft-ietf-ospf-cap-06.txt>,Internet Draft, February 2005, the contents of both of which are herebyincorporated by reference in their entirety.

As an example, the extended object 600 a may be used as mentioned aboveto carry the PCED within the IGP message 300 when advertisingcapabilities of a PCE. The PCED TLV comprises a set of non-orderedsub-TLVs 650 carried within the TLV “payload” (e.g. Value field 615),that define the PCE capabilities. A novel sub-TLV 650 is defined tocarry the new PCE capability in accordance with the present invention.For instance, the novel sub-TLV 650 may be configured to contain thedesired congestion information, such as, e.g., the current PRT of thePCE, the PRT_max of the PCE, and/or a difference between the PRT andPRT_max, either as individual sub-TLVs or as a plurality of fieldswithin a single sub-TLV. Sub-TLV 650 may also contain other means toindicate congestion, such as flags (not shown) or predefined valuesindicating various levels of congestion. Notably, the indication ofcongestion does not need to be located within a PCED message, but may infact be a separate type of IGP message. Moreover, the indication ofcongestion may be a value within the Value field 615, and not within asub-TLV 650. Those skilled in the art will understand that other formatsof the information are within the scope of the present invention, andthat those formats shown herein for illustration are not meant to belimiting in any way.

Optionally, the notification may include a specified time for which therequesting PCCs must wait before the PCE is willing to receive furtherrequests (e.g., a retry timer). Notably, to reduce the likelihood thatthe PCE will be inundated with requests at the expiration of thespecified time, each PCC may be configured to jitter its requests afterthe expiration of the retry timer. Jitter techniques are generally knownin the art, and include such methods as random delay timers, etc., inorder to spread out the many possible requests pending the timerexpiration.

In accordance with another aspect of the present invention, a PCC sendsa path computation request to a preferred PCE, which may explicitlysignal a maximum response time (MRT) for the request, or which may be ofa type associated with a predefined MRT. Notably, request types includevarious types of prioritized TE-LSP requests, such as, e.g., initialestablishment requests, reroute requests, re-optimization requests, etc.For example, an initial request may be configured with a shorter MRT(e.g., a higher priority) than a re-optimization request because there-optimization request may generally be associated with a TE-LSPalready established (e.g., thus a lower priority). Moreover, the requesttype may simply include all TE-LSP requests, such that a single MRT isgenerally defined for all types of requests. Upon receiving the request,the preferred PCE calculates a PRT for that request, and in the eventthe PRT is greater than the MRT, the PCE may send a response to the PCCindicating the inability to comply with the MRT. Also, the PCE mayrespond to the specific request with an indication of congestion if thePRT_max of the PCE is reached as described above.

In the illustrative embodiment described herein, a request/responsesignaling exchange for use between PCEs and PCCs is embodied asextensions to RSVP-TE signaling messages, as described above. Notably,the RSVP extensions are, in turn, embodied as new RSVP objects, flags,and/or TLV encoded formats contained within the RSVP objects.Specifically, new RSVP extensions may be used to communicate desiredinformation about the requests/response, such as the current PRT of thePCE or the MRT of the particular request.

In particular, referring again to FIG. 6, an Extension Object 600 b maybe used to convey the MRT from a PCC within a path computation requestmessage 400 of FIG. 4. As noted above, the Value field 615 and/or thesub-TLV(s) 650 may contain the MRT. Those skilled in the art willunderstand that other formats of the information are within the scope ofthe present invention, and that those formats shown herein forillustration are not meant to be limiting in any way.

Moreover, an Extension Object 600 c may be used to convey the PRT of aPCE and/or inability to comply within a path computation reply message500 of FIG. 5. For instance, the Extension Object 600 c may beconfigured to contain the desired information, such as, e.g., anindication of the inability to comply with the MRT of the request, thecurrent PRT of the PCE, the PRT_max of the PCE, and/or a differencebetween the PRT and PRT_max, either as individual objects, or as aplurality of fields within a single object. The Extension Object 600 cmay also contain other means to indicate congestion, such as flags (notshown) or predefined values indicating the inability to comply with theMRT of the request and/or various levels of congestion. Notably, theindication of the inability to comply may be a value within a sub-TLV650, and not within a Value field 615. Those skilled in the art willunderstand that other formats of the information are within the scope ofthe present invention, and that those formats shown herein forillustration are not meant to be limiting in any way.

In accordance with still another aspect of the present invention, uponreceiving from a preferred PCE either a notification indicatingcongestion or a response to a request indicating an inability to complywith an MRT, a PCC may advantageously redirect its requests to anavailable alternate PCE (e.g., a non-congested PCE). To redirectrequests, the PCC resends its pending requests (or a set of pendingrequests) to the alternate PCE, and also sends a novel “clear_request”path computation message, similar to path computation message 400described above. In the clear_request message, the extension object 600b may be utilized to signal the previously preferred PCE to clear any(or a set of) pending requests for that particular PCC. Notably, thepreviously preferred PCE may be configured to clear the request inresponse to a congested state regardless of a received clear_requestmessage. In the event no alternate PCEs are available, e.g., with no orless congestion, the PCC utilizes either the current preferred PCE, oran alternate PCE with the least congestion. A PCC may also receivenotifications of a current PRT or load of the PCEs prior to theirbecoming congested, and as such the PCC may select the PCE with theleast load accordingly.

Once the congested state of a PCE is cleared, the PCC may decide toagain send all further requests to the preferred PCE. Notably, in theevent that all available PCEs are in a congested state, the PCC maydecide to distribute its request(s) across such PCEs proportionally tothe PCE load (if available) or by using other distribution techniquesknown in the art, such as, e.g., a round-robin algorithm.

In some network configurations, a PCE may be capable of dynamicallydetermining the list of alternate PCEs serving the PCC. In this case,the notification of congestion (e.g., advertisement or reply) istriggered if and only if the preferred PCE determines that an alternatePCE exists that is not congested. For instance, the preferred PCE mayalso receive and monitor the load advertisements from other PCEs asdescribed above.

FIG. 7 is a flowchart illustrating a sequence of steps for identifying acongested PCE state in accordance with the present invention. Sequence700 starts at step 705 and continues to step 710 where a PCE receives apath computation request from a PCC. At step 715, the PCEcalculates/estimates a PRT, which is then compared to a locallyconfigured PRT_max value in step 720. If the PRT is less than thePRT_max, the PCE processes the request and the sequence returns to step710 to receive the next request. If the PRT is greater than or equal tothe PRT_max, however, the PCE is congested, and in step 725 the PCEsends a notification of congestion, as described above.

Once in the congested state, the PCE may or may not receive morerequests at step 730, depending on local PCC configuration during acongested state, as described herein. Regardless, the PCEcalculates/estimates the PRT for the requests in step 735, e.g., eitherthe current received request, or the last received request thattriggered the congested state. (Notably, the PRT may also bere-evaluated in the absence of any new received path computationrequests.) At step 740, the PRT is compared with a PRT_min value. If thePRT is greater than the PRT_min, the PCE is still considered congested(to prevent oscillation, as described herein), and the sequence returnsto step 730 to possibly receive a next request. If the PRT is less thanor equal to the PRT_min, however, the PCE is no longer congested, and instep 745 the PCE sends a notification to clear the congested state, asdescribed above. The sequence 700 then continues from step 710 toreceive the next request in a non-congested state at the PCE.

FIG. 8 is a flowchart illustrating a sequence of steps for responding topath computation requests in accordance with the present invention.Sequence 800 starts at step 805 and continues to step 810 where the PCCsends a request to the preferred PCE including an MRT. At step 820, thepreferred PCE receives the request, and in step 825 the preferred PCEcalculates/estimates the PRT for the request. If the PRT is less thanthe MRT, the PCE processes the request at step 835, and the sequenceends at step 855. If the PRT is greater than or equal to the MRT,however, the PCE is more congested than the requesting PCC desires, andin step 840 the preferred PCE responds to the request indicating aninability to comply with the MRT, as described above. If at step 845 thepreferred PCE receives an indication that the PCC has cleared therequest, the PCE clears the request in step 850, and the sequence endsat step 855 without processing the request. On the other hand, if thePCC does not clear the request (e.g., there is no alternate PCE), thepreferred PCE processes the request in step 835, and the sequence endsat step 855. In some cases, the PCE may be configured to clear therequest without a clear_request message, as described above.

FIG. 9 is a flowchart illustrating a sequence of steps for selecting anappropriate PCE in accordance with the present invention. Sequence 900starts at step 905 and continues to step 910 where a PCC receives from apreferred PCE either a congestion notification, or a response to a pathcomputation request indicating an inability to comply with an MRT of therequest. If there are no alternate PCEs available to the PCC in step915, the PCC continues to utilize the current preferred PCE in step 920,and the sequence ends in step 940. In the event that there are alternatePCEs available in step 915, the PCC may be configured to determinewhether the alternate PCEs have less congestion in step 925, such as byreceived congestion notifications, etc., as described above. If thereare no alternate PCEs with less congestion than the preferred PCE, thePCC continues to utilize the preferred PCE in step 920. If there is atleast one alternate PCE available, however, the PCC, if necessary (e.g.,for pending requests), may send message to the preferred PCE to clearthe pending request in step 930. At step 935, the PCC redirects therequest(s) (pending and/or future) to the alternate PCE at step 935, andthe sequence ends at step 940.

Advantageously, the novel technique efficiently selects an appropriatePCE to compute a path, such as a TE-LSP path, between nodes of a networkto thereby reduce a set-up time for the TE-LSP and allows for fasterconvergence. TE-LSP set-up times are generally critical to TE sensitiveapplications and, thus, reduction of those times is desirable. Byselecting an appropriate PCE, or, in the case of multiple PCEs,efficiently load balancing a set of requests among the PCEs, PCEoverload is obviated, thus reducing the TE-LSP set-up time since thepath computation time is thereby reduced.

While there has been shown and described an illustrative embodiment thatefficiently selects a PCE to compute a path between nodes of a computernetwork, it is to be understood that various other adaptations andmodifications may be made within the spirit and scope of the presentinvention. Notably, the invention has been shown and described hereinusing IGP messages and extensions to IGP to transmit the PRT informationof a PCE and notifications of congestion. However, the invention in itsbroader sense is not so limited, and may, in fact, be used with othermeans for flooding the notifications to PCCs. For instance, a specificPCE-PCC communication protocol may be advantageously used in accordancewith the present invention. Moreover, the invention has also been shownand described herein using RSVP messages and extensions to RSVP totransmit the MRTs, PRTs, etc., as well as indications of an inability tocomply with an MRT. However, the invention in its broader sense is notso limited, and may, in fact, be used with other means for transmittingthis information between PCEs and PCCs. For instance, a specific PCE-PCCcommunication protocol may be advantageously used in accordance with thepresent invention.

The foregoing description has been directed to specific embodiments ofthis invention. It will be apparent, however, that other variations andmodifications may be made to the described embodiments, with theattainment of some or all of their advantages. For instance, it isexpressly contemplated that the teachings of this invention can beimplemented as software, including a computer-readable medium havingprogram instructions executing on a computer, hardware, firmware, or acombination thereof. Also, electromagnetic signals may be generated tocarry computer executable instructions that implement aspects of thepresent invention over, e.g., a wireless data link or a data network,such as the Internet. Accordingly this description is to be taken onlyby way of example and not to otherwise limit the scope of the invention.Therefore, it is the object of the appended claims to cover all suchvariations and modifications as come within the true spirit and scope ofthe invention.

The invention claimed is:
 1. An apparatus comprising: a networkinterface configured to: send a path computation request to at least onepath computation element (PCE), the path computation request carrying amaximum response time (MRT); and receive a computed path between nodesof a computer network from the PCE; and a processor configured to:select an alternate PCE to service the path computation request; andcompute a path between nodes of the computer network, in the event theat least one PCE indicates an inability to comply with the MRT.
 2. Theapparatus of claim 1, wherein the processor is further configured todetermine if the alternate PCE has less congestion than the at least onePCE.
 3. The apparatus of claim 1, wherein the network interface isfurther configured to send a message to the at least one PCE in order toclear the path computation request.
 4. The apparatus of claim 1, whereinthe network interface is further configured to redirect at least one ofthe path computation request or future path computation requests to thealternate PCE.
 5. The apparatus of claim 1, wherein the processor isfurther configured to assign values to the MRT according to types ofpath computation requests.
 6. The apparatus of claim 5, wherein theprocessor is further configured to assign shorter MRTs to types withhigher priorities.
 7. The apparatus of claim 1, wherein the networkinterface is further configured to: receive a predictive response time(PRT) from the at least one PCE to the path computation request; anddistribute subsequent path computation requests proportionally among theat least one PCE based on the PRTs of the at least one PCE.
 8. A methodcomprising: sending a path computation request to at least one pathcomputation element (PCE), the path computation request carrying amaximum response time (MRT); receiving a computed path between nodes ofa computer network from the PCE; selecting an alternate PCE to servicethe path computation request; and computing a path between nodes of thecomputer network, in the event the at least one PCE indicates aninability to comply with the MRT.
 9. The method of claim 8, furthercomprising determining if the alternate PCE has less congestion than theat least one PCE.
 10. The method of claim 8, further comprising sendinga message to the at least one PCE in order to clear the path computationrequest.
 11. The method of claim 8, further comprising redirecting atleast one of the path computation request or future path computationrequests to the alternate PCE.
 12. The method of claim 8, furthercomprising assigning values to the MRT according to types of pathcomputation requests.
 13. The method of claim 12, wherein assigningvalues to the MRT according to types of path computation requestsfurther includes assigning shorter MRTs to types with higher priorities.14. The method of claim 8, further comprising: receiving a predictiveresponse time (PRT) from the at least one PCE to the path computationrequest; and distributing subsequent path computation requestsproportionally among the at least one PCE based on the PRTs of the atleast one PCE.
 15. A non-transitory computer-readable storage mediumhaving stored therein instructions which, when executed by a processor,cause the processor to perform operations comprising: selecting analternate path computation element (PCE) to service a path computationrequest, the path computation request sent to at least one PCE andcarrying a maximum response time (MRT); and computing a path betweennodes of a computer network, in the event the at least one PCE indicatesan inability to comply with the MRT.
 16. The non-transitorycomputer-readable storage medium of claim 15, storing additionalinstructions which, when executed by the processor, result in operationsfurther comprising determining if the alternate PCE has less congestionthan the at least one PCE.
 17. The non-transitory computer-readablestorage medium of claim 15, storing additional instructions which, whenexecuted by the processor, result in operations further comprisingassigning values to the MRT according to types of path computationrequests.
 18. The non-transitory computer-readable storage medium ofclaim 17, wherein assigning values to the MRT according to types of pathcomputation requests further includes assigning shorter MRTs to typeswith higher priorities.
 19. The non-transitory computer-readable storagemedium of claim 15, storing additional instructions which, when executedby the processor, result in operations further comprising selecting apreferred PCE based on a predictive response time (PRT) of the at leastone PCE, the selected PCE to service the path computation request andcompute the path between the nodes of the computer network.
 20. Thenon-transitory computer-readable storage medium of claim 19, storingadditional instructions which, when executed by the processor, result inoperations further comprising determining subsequent path computationrequests to be distributed proportionally among the at least one PCEbased on the PRTs of the at least one PCE.